package com.demo.java.OD51_100.OD83;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【素数之积】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145638677
 */
public class OdMain {
    // 定义一个方法check，用来判断一个数是否是素数（质数）
    private static boolean check(int num) {
        // 从2开始检查到num-1，看看是否能被某个数整除
        for (int j = 2; j < num; j++) {
            // 如果num能被j整除，说明num不是素数
            if (num % j == 0) {
                return false;
            }
        }
        // 如果循环结束还没有找到能整除num的数，说明num是素数
        return true;
    }

    public static void main(String[] args) {
        try {
            // 创建Scanner对象来读取输入
            Scanner s = new Scanner(System.in);

            // 读取一个整数作为输入
            int inputValue = s.nextInt();

            // 初始化最大值为输入值
            int maxValue = inputValue;

            // 从3开始遍历到输入值的最大值
            for (int j = 3; j <= maxValue; j++) {
                // 如果输入值能被当前j整除
                if (inputValue % j == 0) {
                    // 更新最大值为输入值除以当前j
                    maxValue = inputValue / j;

                    // 如果j和输入值除以j都是素数，输出这两个数
                    if (check(j) && check(inputValue / j)) {
                        System.out.println(j + " " + inputValue / j);
                        return;
                    }
                }
            }
            // 如果没有找到符合条件的素数对，输出-1 -1
            System.out.println(-1 + " " + -1);
        } catch (Exception e) {
            // 捕获异常并输出错误信息
            e.printStackTrace();
            System.out.println("false");
        }
    }
}